Desarrollo local con Docker
Esta guía proporciona instrucciones detalladas para configurar Eventify usando Docker, incluyendo requisitos, pasos de instalación, configuración adicional y variables de entorno.
Requisitos
-
Docker: Docker simplifica la gestión y el despliegue de aplicaciones. Obtener Docker.
-
Docker Compose: Asegúrate de que Docker Compose esté instalado. Viene incluido con Docker Desktop para Windows y Mac. Guía de instalación de Docker Compose.
-
Git: Git debe estar instalado para clonar el repositorio. Guía de instalación de Git.
Instrucciones de configuración
Paso 1: Clonar el repositorio
Clona el repositorio de GitHub de Eventify en tu máquina local usando Git y cambia al directorio Docker en el repositorio clonado:
git clone git@github.com:vikgmdev/eventify.git
cd eventify/docker/all-in-one
Paso 2: Generar el APP_KEY y JWT_SECRET
Genera las llaves usando los siguientes comandos:
Unix/Linux/MacOS/WSL
echo base64:$(openssl rand -base64 32) # For APP_KEY
openssl rand -base64 32 # For JWT_SECRET
Windows (Símbolo del sistema):
for /f "tokens=*" %i in ('openssl rand -base64 32') do @echo APP_KEY=base64:%i
for /f "tokens=*" %i in ('openssl rand -base64 32') do @echo JWT_SECRET=%i
Windows (PowerShell):
"base64:$([Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(32)))" # For APP_KEY
[Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(32)) # For JWT_SECRET
Después de iniciar, accede a la aplicación en:
- Frontend: https://localhost:8443
- Backend/API: https://localhost:8443/api
Paso 3: Actualizar el archivo .env
Actualiza el archivo .env ubicado en ./docker/all-in-one/.env con las claves APP_KEY y JWT_SECRET generadas:
APP_KEY=your_generated_app_key
JWT_SECRET=your_generated_jwt_secret
Paso 4: Iniciar los contenedores de Docker
docker compose up -d
Paso 5: Crear una cuenta
Visita http://localhost:8123/auth/register para crear una cuenta.
Nota de producción:
Para producción, asegúrate de generar un APP_KEY y un JWT_SECRET únicos para cada entorno y nunca codifiques valores sensibles de forma fija (hardcode).